var http = require('http');
var fs = require('fs');
var url = require('url');
var querystring = require('querystring')
var path = require('path')

var server = http.createServer(function(req, res) {
	res.setHeader('Access-Control-Allow-Origin', '*'); //访问控制允许来源：所有
	res.setHeader('Access-Control-Allow-Headers', 'Origin, X-Requested-With, Content-Type, Accept'); //访问控制允许报头 X-Requested-With: xhr请求
	res.setHeader('Access-Control-Allow-Metheds', 'PUT, POST, GET, DELETE, OPTIONS'); //访问控制允许方法
	res.setHeader('X-Powered-By', 'nodejs'); //自定义头信息，表示服务端用nodejs
	console.log(req.url)
	if (req.method === "GET") {
		// var pathname = url.parse(req.url).pathname
		// //截取？后面的内容
		// var info = querystring.parse(req.url)
		// // console.log(pathname)
		// console.log(info)
		// console.log(req.url)
		// 设置返回数据的Content-type为JSON
		res.setHeader('Content-type', 'application/json')
		// let resData = {
		//     error: 0,
		//     message: 'GET返回成功',
		//     data: {
		//         query: info.ceshi
		//     }
		// }
		var info = {}
		var fileName
		if (req.url == '/lunbo') {
			fileName = path.join(__dirname, 'data/lunbo.json')
		}
		if (req.url == '/test') {
			fileName = path.join(__dirname, 'data/test.json')
		}
		if (req.url == '/cm') {
			fileName = path.join(__dirname, 'cm.json')
		}
		fs.readFile(fileName, function(err, data) {
			if (err) {
				res.end('404')
			} else {
				// console.log(data.toString('utf8'))
				info = data.toString('utf8')
				res.end(JSON.stringify(info));
			}
		})
	}
	if (req.method === "POST") {
		// 定义了一个post变量，用于暂存请求体的信息
		var post = '';

		// 通过req的data事件监听函数，每当接受到请求体的数据，就累加到post变量中
		req.on('data', function(chunk) {
			post += chunk;
		});

		// 在end事件触发后，通过querystring.parse将post解析为真正的POST请求格式，然后向客户端返回。
		req.on('end', function() {
			// console.log(post)
			post = querystring.parse(post);
			console.log('data:', JSON.stringify(post))
			fs.readFile('./cm.json', 'utf8',function(err, data) {
				if (err) {
					fs.writeFile('./cm.json', JSON.stringify(post), 'utf8', function(err) {
						if (err) {
							console.log('写文件失败')
						} else {
							console.log('写文件成功')
						}
					});
				}else{
					var info =JSON.parse(data)
					info.data.unshift(post.data)
					info.time.unshift(post.time)
					console.log("read",info.data)
					fs.writeFile('./cm.json', JSON.stringify(info), 'utf8', function(err) {
						if (err) {
							console.log('写文件失败1')
						} else {
							console.log('写文件成功1')
						}
					});
				}
			})
			res.end(JSON.stringify(post));
			//因为为fs为异步操作，所以fs操作未完成就进行了end操作，导致返回的值为post的值
			//我们的需求为写入cm.json文件，所以满足需求
			
		});
	}
});


server.listen(5000);
console.log("server is running at http://localhost:5000");
